// let shareCache = ''
export default Vue => {
  Vue.prototype.$wxShare = async function (wxParam = {}) {
    const link = wxParam.link || window.location.href.split('#')[0]
    // const link = wxParam.link || window.location.href
    // if (shareCache === link) {
    //   return
    // }
    // shareCache = link

    // 默认数据，
    let defaultObj = {
      title: '美多拼，一款门店拓客引流的微营销工具、日常客户运营的助手工具',
      desc: '它针对门店拓客难、老客互动难、线上转型难等5大难题构建多种活动场景，邀您共享9亿人的社交红利。',
      link,
      imgUrl: 'https://upload.emeker.com?key=logo-1.png&token=8fd185e927258830f9ed828d1bada179c8aeaeed159ccc1c906cc20667a44728d0afe7b579c49975911c3bb6ad06aace:3c9b6ad38729e04071de1377d5214589'
    }
    const wx = await Vue.prototype.$wxReady()
    if (wx === false) {
      return
    }

    // 微信小程序分享相关
    wx.miniProgram.getEnv(function (res) {
      if (res.miniprogram) {
        wx.miniProgram.postMessage({
          data: {
            title: wxParam.title || defaultObj.title,
            path: wxParam.link || defaultObj.link, // 分享链接 默认以当前链接
            imageUrl: wxParam.imgUrl || defaultObj.imgUrl // 分享图标
          }
        })
      }
    })

    // 过滤不识别字符
    if (wxParam.desc) {
      wxParam.desc = wxParam.desc.replace(/<[^>]+>/g, '')
    }
    if (wxParam.title) {
      wxParam.title = wxParam.title.replace(/<[^>]+>/g, '')
    }

    // 所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，
    // 则可以直接调用，不需要放在ready函数中。
    wx.onMenuShareAppMessage({
      // 分享给朋友
      title: wxParam.title || defaultObj.title, // 分享标题
      desc: wxParam.desc || defaultObj.desc, // 分享描述
      link: wxParam.link || defaultObj.link, // 分享链接 默认以当前链接
      imgUrl: wxParam.imgUrl || defaultObj.imgUrl, // 分享图标
      // 用户确认分享后执行的回调函数
      success: function () {
        wxParam.success && wxParam.success()
      },
      // 用户取消分享后执行的回调函数
      cancel: function () {
        wxParam.cancel && wxParam.cancel()
      },
      fail: function fail (res) {
        wxParam.fail && wxParam.fail()
      }
    })
    // 分享到朋友圈
    wx.onMenuShareTimeline({
      title: wxParam.title || defaultObj.title, // 分享标题
      desc: wxParam.desc || defaultObj.desc, // 分享描述
      link: wxParam.link || defaultObj.link, // 分享链接 默认以当前链接
      imgUrl: wxParam.imgUrl || defaultObj.imgUrl, // 分享图标
      // 用户确认分享后执行的回调函数
      success: function () {
        wxParam.success && wxParam.success()
      },
      // 用户取消分享后执行的回调函数
      cancel: function () {
        wxParam.cancel && wxParam.cancel()
      },
      fail: function fail (res) {
        wxParam.fail && wxParam.fail()
      }
    })
    wx.error(function (res) {
      console.error(JSON.stringify(res), 200)
      // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
    })
  }
}
